<?php
/**
 * Description of time
 *
 * LANG SUPPORT MISSES
 *
 *
 *
 * @author Flame
 */
class tempo {

    public $mesi = array(
    '1' => 'Gennaio',
    '2' => 'Febbraio',
    '3' => 'Marzo',
    '4' => 'Aprile',
    '5' => 'Maggio',
    '6' => 'Giugno',
    '7' => 'Luglio',
    '8' => 'Agosto',
    '9' => 'Settembre',
    '10' => 'Ottobre',
    '11' => 'Novembre',
    '12' => 'Dicembre'
    );
    
    private $timestamp;

    function __construct($ts = false)
    {
        if(!$ts) $this->timestamp = time();
        else $this->timestamp = $ts;
    }


    function giorno($mode = false)
    {

	$oggi = date("j");
	$oggi_mese = date("n");
	$oggi_anno = date("Y");

	$giorno = date("j",$this->timestamp);
	$mese = date("n",$this->timestamp);
	$anno = date("Y",$this->timestamp);

	$ieri_min = $this->mezzanotte(true) - 86399;
	$ieri_max = $this->mezzanotte(true) + 86399;

	$orario = date("H:i",$this->timestamp);

	switch($mode)
	{
		case 'mese':
			return $this->mesi[$this->timestamp];
		break;
		case 'corto':
			if($oggi == $giorno && $oggi_mese == $mese && $oggi_anno == $anno) return 'oggi';
			else if($this->timestamp > $ieri_min && $this->timestamp < $ieri_max) return 'ieri';
			else return date("j",$this->timestamp).' '.date("n",$this->timestamp).' '.date("Y",$this->timestamp);
		break;
		case 'dmy':
			return date("d.m.Y",$this->timestamp);
		break;
		case 'mess':
			if($oggi == $giorno && $oggi_mese == $mese && $oggi_anno == $anno) return 'oggi, alle '.$orario;
			else if($this->timestamp > $ieri_min && $this->timestamp < $ieri_max) return 'ieri, alle '.$orario;
			else return date("j",$this->timestamp).' '.date("n",$this->timestamp).' '.date("Y",$this->timestamp).', alle '.$orario;
		break;
		default:
			if($oggi == $giorno && $oggi_mese == $mese && $oggi_anno == $anno) return 'oggi';
			else if($this->timestamp > $ieri_min && $this->timestamp < $ieri_max) return 'ieri';
			else return date("j",$this->timestamp).' '.$this->mesi[date("n",$this->timestamp)].' '.date("Y",$this->timestamp);
        }
    }

    function mezzanotte($now)
    {
        if($now)
            return mktime(0, 0, 0, date('n'), date('j'), date('Y'));
        else
            return mktime(0, 0, 0, date('n', $this->timestamp), date('j', $this->timestamp), date('Y', $this->timestamp));
    }

    function mt()
    {
        $usec = $this->timestamp;
        $sec = $this->timestamp;
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }
}
?>
